Generally, the load on a computing device, such as a desktop computer, a portable computer, and a mobile phone, may be measured in terms of various performance parameters. Examples of the performance parameters include central processing unit (CPU) utilization, memory utilization, input/output capacity, network load, or a combination thereof. The measurement of load may be useful in various applications. In one scenario, the load of a computing device measured, say in terms of CPU load, can be used to alter voltage and frequency of a clock signal provided to the CPU by using techniques, such as dynamic voltage and frequency scaling.
In another scenario, the measured load may be useful in load testing of the computing device, specifically in generation of an artificial load. Load testing is the process of creating demand or artificial load on the computing device and subsequently, measuring the device's response to the total load. The total load may include both the artificial load and a default natural load of the computing device. Such testing further involves monitoring the performance of the computing device under various load conditions, identifying potential scalability problems, determining the maximum capacity of the computing device, and identifying bottlenecks, if any, that might interfere with the computing device operating at that capacity.
However, conventional schemes of load measurement operate while the CPU is in execution. In other words, the measurement is performed during a time interval within which one or more processes are scheduled for execution. In effect, the result of such measurements may be inaccurate. Since the measured load is provided as input to various applications, for example, load-testing applications, such applications also fail to provide correct results.